#include "stk_body.h"

using namespace stk;

Body::Body()
{
    SetType(STK_FD_NAME_BODY);

    m_strBody = "";
}

Body::Body(const Body &src)
{
    *this = src;
}

Body::Body(const char *buf, int len)
{
    SetType(STK_FD_NAME_BODY);
    parse(buf, len);
}

Body::~Body()
{
    clear();
}

bool Body::isvalid() const
{
    return !m_strBody.empty();
}

void Body::clear()
{
    m_strBody = "";
}

int32_t Body::to_str (string &str)
{
    str += m_strBody;

    return 0;
}

int32_t Body::parse (const char *buf, int len)
{
    if (!buf)
    {
        printf("ERRO: <%010d> <%s.Parse> Invalid Buffer\n", GetSession(), GetTypeName());
        return -1;
    }

    clear();

    m_strBody = buf;

    return 0;                     /* ok */
}

Body& Body::operator= (const Body &src)
{
    clear();

    m_strBody     = src.m_strBody;
    m_ContentType = src.m_ContentType;

    //m_listMime.assign(src.m_listMime, _override_t<>());

    MsgField::operator=(src);

    return *this;
}
